package com.yidu.hbatsams.service.Impl;

import com.github.pagehelper.PageHelper;
import com.yidu.hbatsams.dao.AtsEmpAthleteMapper;
import com.yidu.hbatsams.domain.AtsEmpAthlete;
import com.yidu.hbatsams.service.emp.AtsEmpAthleteService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.sql.Date;
import java.util.List;

/**
 * @描述：运动员ServiceImpl
 * @backage:com.yidu.hbatsams.service.Impl
 * @Author: 石嘉澄
 * @Date: 2019/11/30
 **/
@Service
public class AtsEmoAthleteServiceImpl implements AtsEmpAthleteService {

    /**
     * 调用运动员Mapper接口
     */
    @Resource
    AtsEmpAthleteMapper atsEmpAthleteMapper;


    /**
     * 查询运动员的信息
     * @param atsEmpAthlete 运动员对象
     * @return 查询运动员信息的方法
     */
    @Override
    public List<AtsEmpAthlete> selectBysportId(AtsEmpAthlete atsEmpAthlete) {
        //调用查询方法
        return atsEmpAthleteMapper.selectBysportId(atsEmpAthlete);
    }

    /**
     * 根据教练员ID查询运动员信息
     * @param coachId 教练员ID
     * @return 根据教练员ID查询运动员信息的方法
     */
    @Override
    public List<AtsEmpAthlete> selectByCoachId(Integer coachId) {
        //调用根据教练员ID查询的方法
        return atsEmpAthleteMapper.selectByCoachId(coachId);
    }

    /**
     * 查询教练员下面的运动员
     * @param coachId
     * @return
     */
    @Override
    public List<AtsEmpAthlete> findAllByCoachId(Integer coachId) {
        return atsEmpAthleteMapper.findAllByCoachId(coachId);
    }

    /**
     * 查询教练员权限但铁路的总行数
     * @return 根据教练员ID查询行数的方法
     */
    @Override
    public Long countCoach(Integer coachId) {
        //调用根据教练员ID查询行数的方法
        return atsEmpAthleteMapper.countCoach(coachId);
    }

    @Override
    public List<AtsEmpAthlete> selectByOldCoach(AtsEmpAthlete atsEmpAthlete) {
        return atsEmpAthleteMapper.selectByOldCoach(atsEmpAthlete);
    }

    /**
     * 查询所有运动员信息
     * @param pageNum
     * @param pageSize 长度
     * @param athleteName 运动员名称
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 运动员信息的集合
     */
    @Override
    public List<AtsEmpAthlete> selectAll(Integer pageNum, Integer pageSize, String athleteName,String startTime,String endTime) {
        //调用分页的方法PageHelper.startPage
        PageHelper.startPage(pageNum, pageSize);
        //调用查询运动员所有信息的方法
        List<AtsEmpAthlete> ats = atsEmpAthleteMapper.selectAll(athleteName,startTime,endTime);
        //返回集合
        return ats;
    }

    /**
     * 教练员权限查询运动员信息
     * @param pageNum
     * @param pageSize 长度
     * @param athleteName 运动员名称
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param coachId 教练员ID
     * @return 运动员信息的集合
     */
    @Override
    public List<AtsEmpAthlete> selectAllCoach(Integer pageNum, Integer pageSize, String athleteName,String startTime,String endTime, Integer coachId) {
        PageHelper.startPage(pageNum, pageSize);
        //返回调用根据教练员ID 查询的方法
        return atsEmpAthleteMapper.selectAllCoach(athleteName,startTime,endTime,coachId);
    }
    /**
     * 查询行数
     * @return
     */
    @Override
    public Long count() {
        return atsEmpAthleteMapper.count();
    }

    /**
     * 根据ID查询
     * @param athleteId
     * @return
     */
    @Override
    public AtsEmpAthlete findById(Integer athleteId) {
        return atsEmpAthleteMapper.findByid(athleteId);
    }


    /**
     * 逻辑删除
     * @param athleteId
     * @return
     */
    @Override
    public int deleteByPrimaryKey(Integer athleteId) {
        return atsEmpAthleteMapper.deleteByPrimaryKey(athleteId);
    }

    @Override
    public List<AtsEmpAthlete> findAll(AtsEmpAthlete atsEmpAthlete) {
        return atsEmpAthleteMapper.findAll(atsEmpAthlete);
    }

    /**
     * 根据ID查询教练员ID
     * @param athleteId
     * @return
     */
    @Override
    public AtsEmpAthlete selectByPrimaryKey(Integer athleteId) {
        return atsEmpAthleteMapper.selectByPrimaryKey(athleteId);
    }


    /**
     * 新增
     * @param record 运动员对象
     * @return
     */
    @Override
    public int insert(AtsEmpAthlete record ) {
        //设置是否有效
        record.setIsva(1);
        //设置创建时间
        record.setCreatTime(new Date(System.currentTimeMillis()));
        //调用新增的方法
        int ats = atsEmpAthleteMapper.insert(record);
        return ats;
    }

    /**
     * 修改
     * @param record
     * @return
     */
    @Override
    public int updateByPrimaryKey(AtsEmpAthlete record ) {
        //设置是否有效
        record.setIsva(1);
        //设置创建时间
        record.setCreatTime(new Date(System.currentTimeMillis()));
        int ats = atsEmpAthleteMapper.updateByPrimaryKey(record);
        return ats;
    }

    /**
     * 根据ID查询运动员名称
     * @return
     */
    @Override
    public List<AtsEmpAthlete> findByAthleteId() {
        return atsEmpAthleteMapper.findByAthleteId();
    }

    /**
     * 根据name查ID
     * @return
     */
    @Override
    public AtsEmpAthlete findByCoachAthleteId(String athleteName) {
        return atsEmpAthleteMapper.findByCoachAthleteId(athleteName);
    }


}
